import Queue from '../data-structures/queue';
/**
 * 用队列模拟击鼓传花
 * @param elementsList 那些人
 * @param num 到第几次淘汰
 */
export function hotPotato(elementsList: any[], num: number) {
    const queue = new Queue();
    const elimitatedList = [];

    for (let i = 0, el = elementsList.length; i < el; i++) {
        queue.enqueue(elementsList[i]);
    }

    while (queue.size() > 1) {
        for (let i = 0; i < num; i++) { // 在num次后淘汰一人
            queue.enqueue(queue.dequeue()); // 从首端取出放入尾端
        }
        elimitatedList.push(queue.dequeue());
    }

    return {
        elimitated: elimitatedList, // 淘汰顺序
        winner: queue.dequeue(),
    };
}
